package com.ewing.core.mpsdk;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ewing.utils.IntegerUtils;

/**
 * 微信常用方法工具类
 * 
 * created by Joeson on 2016年6月13日 下午7:14:22
 */
public class MpUtils {
  /**
   * 默认生成的该类的LOG记录器，使用slf4j组件。避免产生编译警告，使用protected修饰符。
   */
  protected final static Logger LOG = LoggerFactory.getLogger(MpUtils.class);

  private final static String[] ALLOW_PAY_VERSION_ARRAY = new String[] {"5", "0"};

  public static String getMPVersion(String userAgent) {
    if (StringUtils.isEmpty(userAgent)) {
      return StringUtils.EMPTY;
    }

    int index = userAgent.lastIndexOf("/");
    if (index < 0 || index > userAgent.length()) {
      return StringUtils.EMPTY;
    }

    return userAgent.substring(index + 1);
  }

  /**
   * 判断是否允许支付
   * 
   * @param userAgent created by Joeson on 2016年6月13日 下午6:58:38
   */
  public static boolean isAllowPay(String userAgent) {
    String version = getMPVersion(userAgent);
    if (StringUtils.isEmpty(version)) {
      return false;
    }

    String[] curVersions = version.split("\\.");

    int i = 0;
    while (i < curVersions.length || i < ALLOW_PAY_VERSION_ARRAY.length) {
      Integer curVer = IntegerUtils.parseInt(curVersions[i]);
      Integer allowVer = IntegerUtils.parseInt(ALLOW_PAY_VERSION_ARRAY[i]);
      if (curVer > allowVer) {
        return true;
      }
      if (curVer < allowVer) {
        return false;
      }
    }

    if (curVersions.length >= ALLOW_PAY_VERSION_ARRAY.length) {
      return true;
    }

    return false;
  }

}
